package game.ui.core
{
	import com.greensock.*;
	
	import engine.core.*;
	
	import flash.display.*;
	import flash.events.*;
	import flash.geom.*;
	import flash.utils.*;
	
	import game.ui.controls.*;
	//import game.ui.events.*;
	
	public class RxDragManager
	{
		private static const DRAG_THRESHOLD:int = 15;
		public static const DRAG_MODE_DOWN:String = "dragModeDown";
		public static const DRAG_MODE_CLICK:String = "dragModeClick";
		public static const DRAG_MODE_AUTO:String = "dragModeAuto";
		private static const DRAG_DELAY:int = 300;
		private static var s_typeDictionary:Dictionary;
		private static var s_endCallbacks:Vector.<RxCallback>;
		private static var s_dragging:Boolean;
		private static var s_eventDispatcher:EventDispatcher;
		private static var s_dragType:String;
		private static var s_dragTarget:RxUIElement;
		private static var s_dragData:Object;
		private static var s_dragImage:RxUIElement;
		private static var s_dropTarget:RxUIElement;
		private static var s_dragMode:String;
		private static var s_feedbackTween:TweenLite;
		private static var s_feedbackFunction:Function;
		private static var s_dragTimer:Timer;
		private static var s_dragPending:Boolean = false;
		private static var s_mouseDownPosition:Point = null;
		
		public function RxDragManager()
		{
			throw new Error("RxDragManager cannot be instantiated");
		}
		
		public static function Initialize() : void
		{
			s_typeDictionary = new Dictionary(true);
			s_eventDispatcher = new EventDispatcher();
		}
	}
}